<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ECMAScript 关键字 finally</title>
    <script>
        /*
        try/catch/finally 语句用于处理代码中可能出现的错误信息。
        错误可能是语法错误，通常是程序员造成的编码错误或错别字。也 可能是拼写错误或语言中缺少的功能（可能由于浏览器差异）。
        try语句允许我们定义在执行时进行错误测试的代码块。
        catch 语句允许我们定义当 try 代码块发生错误时，所执行的代码块。
        finally 语句在 try 和 catch 之后无论有无异常都会执行。
        注意： catch 和 finally 语句都是可选的，但你在使用 try 语句时必须至少使用一个。
        提示： 当错误发生时， JavaScript 会停止执行，并生成一个错误信息。使用 throw 语句 来创建自定义消息(抛出异常)。
        如果你将 throw 和 try 、 catch一起使用，就可以控制程序输出的错误信息。
        try {
            tryCode - 尝试执行代码块
        }
        catch(err) {
            catchCode - 捕获错误的代码块
        } 
        finally {
            finallyCode - 无论 try / catch 结果如何都会执行的代码块
        }   
        */


    </script>
</head>
<body>
    <p>请输入 5 到 10 之间的数:</p>
    <input id="demo" type="text">
    <button type="button" onclick="myFunction()">检测输入</button>
    <p id="message">dddd</p>
    <script>

        function myFunction(){
            var message, x;
            message = document.getElementById("message");
            message.innerHTML = "";
            x = document.getElementById("demo").value;
            
            try{
                if (x=="") throw "空输入"
                if (isNaN(x)) throw "不是一个数字"
                if (x>10) throw "太大"
                if (x<5) throw "太小"

            }catch(err){  // 这个参数也要加  不然
                message.innerHTML = "输入的值 " + err;
                // err 如果是 undefined 那么 "输入的值" + err 也是 undefined
            }finally{
                document.getElementById("demo").value = "";
            }
        }
      

    </script>
</body>
</html>